// unionId: 一个组织账号，一般一个组织只有一个
// openId: 一个微信账号，一个组织可以创建多个openId

const { userModel } = require('../db/schema')

//插入一条用户数据
async function createUser(wxOpenId) {
  const result = await userModel.insertMany({
    wxOpenId
  })
  return result
}

// 查询用户信息
async function findUser(wxOpenId) {
  const result = await userModel.findOne({ wxOpenId })
  return result
}

//查询用户的账户信息
async function getBalance(wxOpenId) {
  try {
    const result = await userModel.findOne({ wxOpenId })
    if (result) {
      return result.balance
    } else {
      return "系统出现问题，请稍后重试..."
    }
  } catch (e) {
    return "系统出现问题，请稍后重试..."
  }
}

// 扣除用户账户金额
async function deductBalance(wxOpenId) {
  await userModel.findOneAndUpdate({ wxOpenId }, { $inc: { balance: -1 } })
}


//切换服务模式
async function changeModel(wxOpenId, model) {
  await userModel.findOneAndUpdate({ wxOpenId }, { model })
}

//账户充值
async function recharge(wxOpenId, amount) {
  const result = await userModel.findOneAndUpdate({ wxOpenId }, { $inc: { balance: amount } })
  return result
}

module.exports = {
  createUser,
  findUser,
  getBalance,
  deductBalance,
  changeModel,
  recharge
}